home *** CD-ROM | disk | FTP | other *** search
/ Shareware Super Platinum 8 / Shareware Super Platinum 8.iso / mac / WIN_PRO / TPWPROG6.ZIP;1 / SYSMENU.PAS < prev    next >
Encoding:
Pascal/Delphi Source File  |  1992-07-02  |  1.6 KB  |  77 lines

  1. { SysMenu.pas -- Add a command to the system menu }
  2.  
  3. program SysMenu;
  4.  
  5. uses WinTypes, WinProcs, WObjects;
  6.  
  7. const
  8.  
  9.   cm_About = 100;   { 'About' command ID }
  10.  
  11. type
  12.  
  13.   SysMenuApplication = object(TApplication)
  14.     procedure InitMainWindow; virtual;
  15.   end;
  16.  
  17.   PSysMenuWindow = ^SysMenuWindow;
  18.   SysMenuWindow = object(TWindow)
  19.     SysMenuH: HMenu;
  20.     procedure SetupWindow;
  21.       virtual;
  22.     procedure CMAbout(var Msg: TMessage);
  23.     procedure WMSysCommand(var Msg: TMessage);
  24.       virtual wm_First + wm_SysCommand;
  25.   end;
  26.  
  27.  
  28. { SysMenuApplication }
  29.  
  30. {- Initialize SysMenuApplication object's window }
  31. procedure SysMenuApplication.InitMainWindow;
  32. begin
  33.   MainWindow := New(PSysMenuWindow, Init(nil, 'SysMenu'))
  34. end;
  35.  
  36.  
  37. { SysMenuWindow }
  38.  
  39. {- Add About command to system menu }
  40. procedure SysMenuWindow.SetupWindow;
  41. begin
  42.   SysMenuH := GetSystemMenu(HWindow, false);
  43.   AppendMenu(SysMenuH, mf_String, cm_About, 'About...')
  44. end;
  45.  
  46. {- Execute About command }
  47. procedure SysMenuWindow.CMAbout(var Msg: TMessage);
  48. begin
  49.   MessageBox(HWindow, 'System Menu Demo', 'About', mb_Ok)
  50. end;
  51.  
  52. {- Intercept wm_SysCommand messages }
  53. procedure SysMenuWindow.WMSysCommand(var Msg: TMessage);
  54. begin
  55.   case Msg.WParam of
  56.     cm_About: CMAbout(Msg);
  57.   else
  58.     DefWndProc(Msg)
  59.   end
  60.  end;
  61.  
  62. var
  63.  
  64.   SysMenuApp: SysMenuApplication;
  65.  
  66. begin
  67.   SysMenuApp.Init('SysMenuApp');
  68.   SysMenuApp.Run;
  69.   SysMenuApp.Done
  70. end.
  71.  
  72.  
  73. {--------------------------------------------------------------
  74.   Copyright (c) 1991 by Tom Swan. All rights reserved.
  75.   Revision 1.00    Date: 2/20/1991
  76. ---------------------------------------------------------------}
  77.